home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_13_10 / jagger / check2.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-08-28  |  1.0 KB  |  48 lines

  1. /* Listing 6, check.c, version 2 */
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4.  
  5. #include "check.h"    /* Listing 5 */
  6.  
  7. struct Category
  8.    {
  9.    const char * name;
  10.    void (*handler)(void);
  11.    };
  12.  
  13. static void Exit(void) 
  14.    { exit(EXIT_FAILURE); }
  15. static void CarryOn(void) { }
  16.  
  17. static struct Category Severity[] =
  18.    {
  19.    { "UNDEFINED", Exit },
  20.    { "WARNING",    CarryOn    },
  21.    };
  22.  
  23.  
  24. void DB_Trap(    const char pred[], 
  25.                 struct Func * pFunc, 
  26.                 int sev )
  27.    {
  28.    FILE * errLog = stderr;
  29.  
  30.    fprintf(errLog, 
  31.            "\n----Debug-test-failed----\n");
  32.    fprintf(errLog, "CALL: %s %s%s\n",
  33.        pFunc->ret, pFunc->name, 
  34.            pFunc->parms);
  35.    fprintf(errLog, "FILE: %s\n", 
  36.            pFunc->file);
  37.    fprintf(errLog, "LINE: %s\n", 
  38.            pFunc->line);
  39.    fprintf(errLog, "TYPE: %s\n", 
  40.            Severity[sev].name);
  41.    fprintf(errLog, "TEST: %s\n", pred);
  42.    fprintf(errLog, 
  43.            "-------------------------\n");
  44.    fflush(errLog);
  45.    Severity[sev].handler();
  46.    }
  47.  
  48.